package MyDaily.pojo;

import java.util.ArrayList;
import java.util.List;

/**
* @author 作者:lin
* @version 创建时间：2022年3月21日 上午10:43:40
* 类说明
*/
public class PageUtils {
	 public PageUtils() {
	    }

	    /**
	     * 分页时确定的数据：
	     * （1）每页条数：pageSize
	     * （2）总条数：pageSum
	     * （3）页码：pageStr
	     */
	    public static List<Page> getPageList(int pageSize, int pageSum, String pageStr) {
	        /**
	         * 计算总页数：总条数/每页条数
	         * （1）整除：总条数/每页条数
	         * （2）不能整除：总条数/每页条数+1
	         */
	        int pageCount;
	        if (pageSum % pageSize == 0) {
	            pageCount = pageSum / pageSize;
	        } else {
	            pageCount = pageSum / pageSize + 1;
	        }

	        /**
	         * 计算页码：通过前端传入你要查看的页码
	         *    注意点：
	         *       第一页继续点上一页还是继续显示第一页
	         *       最后一页继续点下一页还是继续显示最后一页
	         */
	        int pageNum = 1;
	        if (pageStr != null) {
	            pageNum = Integer.parseInt(pageStr);
	            if (pageNum < 1) {
	                pageNum = 1;
	            }
	            if (pageNum > pageCount) {
	                pageNum = pageCount;
	            }
	        }

	        /**
	         * 计算模糊查询开始编号
	         */
	        int startIndex = (pageNum - 1) * pageSize;

	        /**
	         * 封装分页数据
	         */
	        Page page = new Page(pageSize, pageSum, pageCount, pageNum, startIndex);
	        /**
	         * 将封装好的数据存入集合以供调用
	         */
	        List<Page> pageList = new ArrayList<Page>();
	        pageList.add(page);
	        return pageList;
	    }
}

